const http = require('http');
const fs = require('fs');
const path = require('path');

const PORT = 3000;
const FILE_PATH = path.join(__dirname, 'data.txt');
const WS_FILE_PATH = path.join(__dirname, 'ws.txt'); // ws.txt 文件路径

// 确保文件存在，如果不存在则创建该文件
if (!fs.existsSync(FILE_PATH)) {
    fs.writeFileSync(FILE_PATH, ''); // 新建文件并初始化为空
}
if (!fs.existsSync(WS_FILE_PATH)) {
    fs.writeFileSync(WS_FILE_PATH, 'ws://localhost:8080'); // 新建文件并初始化为默认地址
}

// 读取WebSocket地址
let wsAddress = fs.readFileSync(WS_FILE_PATH, 'utf8').trim(); // 读取并去除空白字符
console.log('初始 WebSocket 地址:', wsAddress); // 调试日志

// 监控 ws.txt 文件的变化
fs.watchFile(WS_FILE_PATH, (curr, prev) => {
    if (curr.mtime !== prev.mtime) {
        wsAddress = fs.readFileSync(WS_FILE_PATH, 'utf8').trim(); // 重新读取文件内容
        console.log('WebSocket 地址已更新:', wsAddress); // 调试日志
    }
});

// 创建一个HTTP服务器
const server = http.createServer((req, res) => {
    // 处理获取文件内容的请求
    if (req.url === '/data.txt') {
        fs.readFile(FILE_PATH, 'utf8', (err, data) => {
            if (err) {
                res.writeHead(500, { 'Content-Type': 'text/plain' });
                res.end('读取文件错误');
                return;
            }
            res.writeHead(200, { 'Content-Type': 'text/plain' });
            res.end(data);
        });
    } else if (req.url === '/' || req.url === '/webScoketInfo.html') {
        // 处理HTML文件的请求
        fs.readFile('webScoketInfo.html', 'utf8', (err, data) => {
            if (err) {
                res.writeHead(404, { 'Content-Type': 'text/plain' });
                res.end('未找到页面');
                return;
            }
            // 将WebSocket地址注入到HTML中
            const htmlWithWsAddress = data.replace('{{wsUrl}}', wsAddress);
            res.writeHead(200, { 'Content-Type': 'text/html' });
            res.end(htmlWithWsAddress);
        });
    } else if (req.url === '/ws-address') {
        // 提供WebSocket地址的API
        res.writeHead(200, { 'Content-Type': 'text/plain' });
        res.end(wsAddress);
    } else {
        res.writeHead(404, { 'Content-Type': 'text/plain' });
        res.end('未找到页面');
    }
});

// 启动服务器
server.listen(PORT, () => {
    console.log(`HTTP服务器运行在 http://localhost:${PORT}`);
    console.log(`初始 WebSocket 地址: ${wsAddress}`);
});
